﻿Public Class xtf_ABMcompra

    Dim ulg_row As DataRow
    Dim obj_documento As cls_documento_ = Nothing
    Dim dtt_documentodetalle_ As DataTable
    Dim dtt_documentoalteracion_ As DataTable

    Public Sub New()
        InitializeComponent()

        'Cargarmoneda()

        'Prepara grid y datasource proveedorarticulo----------------------------------------------------
        gdv_documentodetalle_.Tag = New Collections.Generic.List(Of cls_documentodetalle_)
        dtt_documentodetalle_ = New DataTable
        dtt_documentodetalle_.Columns.Add("idarticulo", GetType(Integer))
        'dtt_documentodetalle_.Columns.Add("cantidadMASK", GetType(Decimal))
        dtt_documentodetalle_.Columns.Add("Nombre", GetType(String))
        dtt_documentodetalle_.Columns.Add("Rubro", GetType(String))
        dtt_documentodetalle_.Columns.Add("RubroOrden", GetType(String))
        dtt_documentodetalle_.Columns.Add("Kilos", GetType(Decimal))
        dtt_documentodetalle_.Columns.Add("Cantidad", GetType(Decimal))
        dtt_documentodetalle_.Columns.Add("Valor", GetType(Decimal))
        dtt_documentodetalle_.Columns.Add("Total", GetType(Decimal))
        dtt_documentodetalle_.Columns.Add("I.V.A.", GetType(Decimal))
        'dtt_documentodetalle_.Columns.Add("valorMASK", GetType(String))
        'dtt_documentodetalle_.Columns.Add("totalMASK", GetType(String))
        dtt_documentodetalle_.Columns.Add("Objeto", GetType(Object))

        gdc_documentodetalle_.DataSource = dtt_documentodetalle_
        gdc_documentodetalle_.ForceInitialize()
        gdv_documentodetalle_.PopulateColumns()
        gdv_documentodetalle_.Columns("Objeto").Visible = False
        gdv_documentodetalle_.Columns("idarticulo").Visible = False
        gdv_documentodetalle_.Columns("RubroOrden").Visible = False


        gdv_documentodetalle_.Columns("Nombre").OptionsColumn.AllowEdit = False
        gdv_documentodetalle_.Columns("Rubro").OptionsColumn.AllowEdit = False
        gdv_documentodetalle_.Columns("Total").OptionsColumn.AllowEdit = False
        gdv_documentodetalle_.Columns("RubroOrden").OptionsColumn.AllowEdit = False

        gdv_documentodetalle_.Columns("I.V.A.").AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far
        gdv_documentodetalle_.Columns("I.V.A.").AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far

        gdv_documentodetalle_.Columns("Kilos").ColumnEdit = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
        CType(gdv_documentodetalle_.Columns("Kilos").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric
        CType(gdv_documentodetalle_.Columns("Kilos").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.EditMask = "n" & int_cantdecimales
        CType(gdv_documentodetalle_.Columns("Kilos").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.UseMaskAsDisplayFormat = True

        gdv_documentodetalle_.Columns("Cantidad").ColumnEdit = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
        CType(gdv_documentodetalle_.Columns("Cantidad").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric
        CType(gdv_documentodetalle_.Columns("Cantidad").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.EditMask = "n" & int_cantdecimales
        CType(gdv_documentodetalle_.Columns("Cantidad").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.UseMaskAsDisplayFormat = True

        gdv_documentodetalle_.Columns("Valor").ColumnEdit = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
        CType(gdv_documentodetalle_.Columns("Valor").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric
        CType(gdv_documentodetalle_.Columns("Valor").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.EditMask = "n" & int_cantdecimales
        CType(gdv_documentodetalle_.Columns("Valor").ColumnEdit, DevExpress.XtraEditors.Repository.RepositoryItemTextEdit).Mask.UseMaskAsDisplayFormat = True

        gdv_documentodetalle_.Columns("Rubro").FieldNameSortGroup = "RubroOrden"
        gdv_documentodetalle_.Columns("Rubro").Group()

        gdv_documentodetalle_.ExpandAllGroups()


        Cargarproveedor_()
        FiltrarColumnas()
        cargarArticulos()
        dtp_Fecha.DateTime = Now
        AgregarValidaciones()
    End Sub

    Public Overrides Sub CargarObjetos()

    End Sub

    Private Sub Cargarproveedor_()
        Dim tmp_obj As Integer = 0
        tmp_obj = cbo_proveedor.EditValue
        Dim proveedor_ As New cls_proveedor_
        proveedor_.CargarTodos(True)
        cargarCombo(cbo_proveedor, proveedor_.Items)
        cbo_proveedor.EditValue = IIf(tmp_obj <> 0, tmp_obj, cbo_proveedor.EditValue)
    End Sub

    Public Shadows Sub Nuevo(ByRef listado As Form)
        Try
            frm_listado = listado
            Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - Nuevo"
            obj_documento = New cls_documento_
            btn_Registro.Enabled = False

            'Numeracion por parametro
            Dim parametro As New cls_config_parametro_
            parametro.Buscar("proximoNumeroPedido")
            txt_numero.Text = parametro.valor

            Me.Show()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Shadows Sub Modificar(ByRef documento As cls_documento_, ByRef listado As Form, ByRef row As DataRow)
        If IsNothing(obj_documento) Then
            obj_documento = New cls_documento_
        End If
        obj_documento = documento
        frm_listado = listado
        ulg_row = row : bbi_imprimir.Enabled = True

        Me.Text = CType(frm_listado, xtf_ListadoBase).lbl_modulo.Text & " - " & obj_documento.ToString
        txt_ID.Text = obj_documento.iddocumento
        'cbo_tipo.SelectedIndex = obj_documento.tipo
        dtp_Fecha.DateTime = obj_documento.fecha

        txt_numero.Text = obj_documento.numero

        If Not IsNothing(obj_documento.tercero) Then
            Dim proveedor As New cls_proveedor_
            proveedor.BuscarXidtercero(obj_documento.idtercero)
            cbo_proveedor.EditValue = proveedor.idproveedor
        End If

        txt_direccion.Text = obj_documento.direccion


        Dim parametro As New cls_config_parametro_
        parametro.Buscar("rubroPrincipal")
        Dim nombreRubroPrincipal As String = parametro.valor

        dtt_documentodetalle_.Clear()
        gdv_documentodetalle_.Tag.Clear()
        If Not IsNothing(obj_documento.documentodetalle_) Then
            If Not IsNothing(obj_documento.documentodetalle_.Items) Then
                For Each documentodetalle As cls_documentodetalle_ In obj_documento.documentodetalle_.Items
                    Dim Item As DataRow = dtt_documentodetalle_.NewRow
                    Item("Objeto") = documentodetalle
                    Item("idarticulo") = documentodetalle.idarticulo
                    Item("Nombre") = documentodetalle.articulo.ToString
                    Item("Rubro") = documentodetalle.articulo.articulorubro.ToString
                    Item("I.V.A.") = documentodetalle.recargoP
                    If nombreRubroPrincipal = documentodetalle.articulo.articulorubro.idarticulorubro Then
                        Item("RubroOrden") = "0" & documentodetalle.articulo.articulorubro.ToString
                    Else
                        Item("RubroOrden") = documentodetalle.articulo.articulorubro.ToString
                    End If

                    If documentodetalle.idunidaddetalle = 0 Then
                        Item("Valor") = documentodetalle.valor
                        Item("Kilos") = documentodetalle.cantidad
                        Item("Cantidad") = documentodetalle.subcantidad
                    Else
                        Item("Valor") = documentodetalle.valor
                        Item("Kilos") = documentodetalle.cantidad
                        Item("Cantidad") = documentodetalle.subcantidad
                    End If
                    Item("Total") = documentodetalle.cantidad * documentodetalle.valor
                    dtt_documentodetalle_.Rows.Add(Item)
                Next
            End If
        End If
        calcularTotal()

        gdv_documentodetalle_.ExpandAllGroups()

        'txt_Descuento.Text = Math.Round(obj_documento.descuento, int_cantdecimales)
        'txt_DescuentoP.Text = Math.Round(obj_documento.descuentoP, int_cantdecimales)
        'txt_Recargo.Text = Math.Round(obj_documento.recargo, int_cantdecimales)
        'txt_RecargoP.Text = Math.Round(obj_documento.recargoP, int_cantdecimales)


        btn_Registro.Enabled = True

        obj_documento.moneda = Nothing
        obj_documento.tercero = Nothing
        obj_documento.documentodetalle_ = Nothing
        obj_documento.registro = Nothing
        btn_filtrar_Click(Nothing, Nothing)
        btn_filtrar.Enabled = True

        Me.Show()

    End Sub

    Public Overrides Function ComprobarDatos() As Boolean
        'If cbo_moneda.Enabled = False Then
        '    ErrManagerShow("001015")
        '    Return False
        'End If
        If Not cbo_proveedor.Enabled Then
            ErrManagerShow("001026", Me)
            Return False
        End If
        'If Not cbo_condicioniva.Enabled Then
        '    Return False
        'End If
        If Not ControlarValidaciones() Then
            ErrManagerShow("000004", Me)
            Return False
        End If
        Return True
    End Function

    Public Shadows Sub btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Guardar.Click
        If ComprobarDatos() Then

            obj_documento.tipodocumento = cls_documento_.enu_tipodocumento.Compra
            obj_documento.tipo = cls_documento_.enu_tipo.X
            obj_documento.fecha = dtp_Fecha.DateTime
            obj_documento.puntoventa = 0
            obj_documento.numero = txt_numero.Text

            obj_documento.razonsocial = cbo_proveedor.Text
            obj_documento.direccion = txt_direccion.Text
            If cbo_proveedor.EditValue <> 0 Then
                Dim proveedor As New cls_proveedor_
                proveedor.Buscar(cbo_proveedor.EditValue)
                obj_documento.idtercero = proveedor.idtercero
            Else
                obj_documento.idtercero = 0
            End If

            obj_documento.idcondicioniva = 0 'CType(cbo_condicioniva.SelectedItem, cls_condicioniva_).idcondicioniva

            Dim moneda As New cls_moneda_
            moneda.MonedaLocal()
            obj_documento.idmoneda = moneda.idmoneda
            'obj_documento.cotizacionfecha = dpt_cotizacionfecha.DateTime
            'obj_documento.cotizacionvalor = txt_cotizacionvalor.Text

            obj_documento.descuento = 0 'txt_Descuento.Text
            obj_documento.descuentoP = 0 'txt_DescuentoP.Text
            obj_documento.recargo = 0 'txt_Recargo.Text
            obj_documento.recargoP = 0 'txt_RecargoP.Text

            obj_documento.vencimiento = obj_documento.fecha.Date
            obj_documento.vencimientore = obj_documento.fecha.Date

            'Guardo documentodetalle------------------------------------------------------
            If IsNothing(obj_documento.documentodetalle_) Then
                obj_documento.documentodetalle_ = New cls_documentodetalle_
            End If
            If IsNothing(obj_documento.documentodetalle_.Items) Then
                obj_documento.documentodetalle_.Items = New Collections.Generic.List(Of cls_documentodetalle_)
            End If
            obj_documento.documentodetalle_.Items = New Collections.Generic.List(Of cls_documentodetalle_)
            For Each Elemento As DataRow In dtt_documentodetalle_.Rows
                'CType(Elemento("Objeto"), cls_documentodetalle_).descuentoP = 0
                'CType(Elemento("Objeto"), cls_documentodetalle_).descuento = 0
                'CType(Elemento("Objeto"), cls_documentodetalle_).recargoP = 0
                'CType(Elemento("Objeto"), cls_documentodetalle_).recargo = 0
                ''CType(Elemento("Objeto"), cls_documentodetalle_).alteracionP = Math.Round((CDec(txt_Otros.Text) * 100) / CDec(txt_totalsubtotal.Text), int_cantdecimales)
                'CType(Elemento("Objeto"), cls_documentodetalle_).alteracion = 0
                'CType(Elemento("Objeto"), cls_documentodetalle_).valorfinal = Elemento
                obj_documento.documentodetalle_.Items.Add(Elemento("Objeto"))
            Next
            For Each Elemento As cls_documentodetalle_ In gdv_documentodetalle_.Tag
                If Elemento.iddocumentodetalle <> 0 Then
                    Elemento.Eliminar(Elemento.iddocumentodetalle)
                End If
            Next

            'Crea asiento cuenta corriente---------------------------------------------------------
            If IsNothing(obj_documento.asiento) Then
                obj_documento.asiento = New cls_asiento_
            End If
            obj_documento.asiento.tipoimporte = cls_asiento_.enu_tipoimporte.Ingreso
            obj_documento.asiento.importe = txt_totaltotal.Text
            obj_documento.asiento.fecha = obj_documento.fecha.Date
            obj_documento.asiento.idtercero = obj_documento.idtercero
            Dim parametroConcepto As New cls_config_parametro_
            parametroConcepto.Buscar("conceptoCtaCteCompra")
            obj_documento.asiento.idasientoconcepto = parametroConcepto.valor
            '--------------------------------------------------------------------------------------

            If txt_ID.Text = "" Then
                obj_documento.Nuevo(True)

                'Incrementa numeracion en parametro
                Dim parametro As New cls_config_parametro_
                parametro.Buscar("proximoNumeroPedido")
                parametro.valor += 1
                parametro.Modificar(parametro)

                If frm_listado.Visible Then
                    ulg_row = CType(frm_listado, xtf_LISTADOcompra_).AgregarItem(obj_documento)
                End If
                Modificar(obj_documento, frm_listado, ulg_row)
            Else
                obj_documento.Modificar()
                If frm_listado.Visible Then
                    CType(frm_listado, xtf_LISTADOcompra_).ModificarItem(obj_documento, ulg_row)
                End If
                Modificar(obj_documento, frm_listado, ulg_row)
            End If
            flg_Modificado = False : btn_Guardar.Enabled = False : bbi_guardar.Enabled = False
        End If
    End Sub

    Private Sub btn_Registro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Registro.Click
        If Not IsNothing(obj_documento.registro) Then
            Dim ABMRegistro As New xtf_ABMRegistro(obj_documento.registro)
            If ABMRegistro.ShowDialog() = Windows.Forms.DialogResult.OK Then
                flg_Modificado = True
            End If
        End If
    End Sub

    Private Sub btn_Cerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cerrar.Click

        If flg_Modificado Then
            bol_comprobarCerrado = False
            Select Case ErrManagerShow("000001", Me)
                Case Windows.Forms.DialogResult.Yes
                    If ComprobarDatos() Then
                        btn_Guardar_Click(Nothing, Nothing)
                    Else
                        Exit Sub
                    End If
                Case Windows.Forms.DialogResult.Cancel : bol_comprobarCerrado = True
                    Exit Sub
            End Select
        End If
        guardar_config_usuariocolumna_()
        Me.Dispose()
    End Sub

    Private Sub txt_numero_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_numero.GotFocus
        txt_numero.SelectAll()
    End Sub

    Private Sub cbo_proveedor_EditValueChanged(sender As System.Object, e As System.EventArgs) Handles cbo_proveedor.EditValueChanged
        Dim proveedor As New cls_proveedor_
        If proveedor.Buscar(cbo_proveedor.EditValue) Then


            If Not IsNothing(proveedor.TerceroIva) Then
                txt_condicioniva.Text = proveedor.TerceroIva
            End If

            If Not IsNothing(proveedor.tercero.direccionprimario) Then
                txt_direccion.Text = proveedor.tercero.direccionprimario.ToString
                If Not IsNothing(proveedor.tercero.direccionprimario.localidad) Then
                    txt_localidad.Text = proveedor.tercero.condicioniva.ToString
                End If
            End If

            If Not IsNothing(proveedor.tercero.telefono_) Then
                If Not IsNothing(proveedor.tercero.telefono_.Items) Then
                    If Not IsNothing(proveedor.tercero.telefono_.Items(0)) Then
                        txt_telefono1.Text = proveedor.tercero.telefono_.Items(0).ToString
                        If proveedor.tercero.telefono_.Items.Count > 1 Then
                            txt_telefono2.Text = proveedor.tercero.telefono_.Items(1).ToString
                        End If
                    End If
                End If
            End If

        End If
    End Sub

    Private Sub cargarArticulos()
        gdv_documentodetalle_.BeginDataUpdate()
        dtt_documentodetalle_.BeginLoadData()
        dtt_documentodetalle_.Rows.Clear()
        Dim articulo_ As New cls_articulo_

        Dim parametro As New cls_config_parametro_
        parametro.Buscar("rubroPrincipal")
        Dim nombreRubroPrincipal As String = parametro.valor

        articulo_.CargarTodos()
        If Not IsNothing(articulo_.Items) Then
            For Each articulo As cls_articulo_ In articulo_.Items
                Dim row As DataRow = dtt_documentodetalle_.NewRow
                row("idarticulo") = articulo.idarticulo
                row("Nombre") = articulo.ToString
                row("Kilos") = 0
                row("Cantidad") = 0
                row("Rubro") = articulo.articulorubro.ToString
                row("I.V.A.") = articulo.iva
                If nombreRubroPrincipal = articulo.articulorubro.idarticulorubro Then
                    row("RubroOrden") = "0" & articulo.articulorubro.ToString
                Else
                    row("RubroOrden") = articulo.articulorubro.ToString
                End If

                row("Valor") = 0
                row("Total") = 0
                Dim documentoDetalle As New cls_documentodetalle_
                Dim moneda As New cls_moneda_
                moneda.MonedaLocal()
                documentoDetalle.idarticulo = articulo.idarticulo
                documentoDetalle.valor = 0
                documentoDetalle.idmoneda = moneda.idmoneda
                row("Objeto") = documentoDetalle
                dtt_documentodetalle_.Rows.Add(row)
            Next
        End If

        dtt_documentodetalle_.EndLoadData()
        gdv_documentodetalle_.EndDataUpdate()
        gdv_documentodetalle_.ExpandAllGroups()
    End Sub

    Private Sub gdv_listaprecioarticulo__CellValueChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs) Handles gdv_documentodetalle_.CellValueChanged
        Select Case e.Column.FieldName
            Case "Kilos"
                Dim row As DataRow = gdv_documentodetalle_.GetDataRow(e.RowHandle)
                Dim detalle As cls_documentodetalle_
                detalle = row("objeto")
                detalle.cantidad = row("Kilos")
                detalle.valorfinal = detalle.cantidad * detalle.valor
                row("Total") = detalle.valorfinal
                calcularTotal()
            Case "Cantidad"
                Dim row As DataRow = gdv_documentodetalle_.GetDataRow(e.RowHandle)
                Dim detalle As cls_documentodetalle_
                detalle = row("objeto")
                detalle.subcantidad = row("Cantidad")
                calcularTotal()
            Case "Valor"
                Dim row As DataRow = gdv_documentodetalle_.GetDataRow(e.RowHandle)
                Dim detalle As cls_documentodetalle_
                detalle = row("objeto")
                detalle.valor = row("Valor")
                detalle.valorfinal = detalle.cantidad * detalle.valor
                row("Total") = detalle.valorfinal
                calcularTotal()
            Case "I.V.A."
                Dim row As DataRow = gdv_documentodetalle_.GetDataRow(e.RowHandle)
                Dim detalle As cls_documentodetalle_
                detalle = row("objeto")
                detalle.recargoP = row("I.V.A.")
                calcularTotal()
        End Select

    End Sub

    Private Sub calcularTotal()
        'Dim total As Decimal = 0
        'For Each row As DataRow In dtt_documentodetalle_.Rows
        '    total += row("Total")
        'Next
        'txt_totaltotal.Text = total
        Dim subtotal As Decimal = 0
        Dim iva As Decimal = 0
        Dim total As Decimal = 0
        For Each row As DataRow In dtt_documentodetalle_.Rows
            subtotal += row("Total")
            iva += (row("I.V.A.") * row("Total")) / 100
        Next
        total = subtotal + iva
        txt_totaltotal.Text = total
        txt_neto.Text = subtotal
        txt_iva.Text = iva
    End Sub

    Private Sub guardar_config_usuariocolumna_()
        gdv_documentodetalle_.Columns("Kilos").ClearFilter()
        gdv_documentodetalle_.OptionsFilter.AllowFilterEditor = False
        gdv_documentodetalle_.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never
        Dim obj_config_usuariocolumna_ As New cls_config_usuariocolumna_
        If obj_config_usuariocolumna_.Buscarxidusuarioxmodulo(UsuarioLOG.idusuario, Me.Name) Then
            obj_config_usuariocolumna_.xml = GetLayoutData(gdv_documentodetalle_)
            obj_config_usuariocolumna_.Modificar()
        Else
            obj_config_usuariocolumna_.xml = GetLayoutData(gdv_documentodetalle_)
            obj_config_usuariocolumna_.idusuario = UsuarioLOG.idusuario
            obj_config_usuariocolumna_.modulo = Me.Name
            obj_config_usuariocolumna_.Nuevo()
        End If
    End Sub

    Public Sub FiltrarColumnas()
        Dim int_IDUsuario As Integer = UsuarioLOG.idusuario
        Dim obj_config_usuariocolumna_ As New cls_config_usuariocolumna_
        gdv_documentodetalle_.BeginUpdate()
        If obj_config_usuariocolumna_.Buscarxidusuarioxmodulo(int_IDUsuario, Me.Name) Then
            SetLayoutData(gdv_documentodetalle_, obj_config_usuariocolumna_.xml)
        End If

        PerzonalizarControl(gdc_documentodetalle_)
        gdv_documentodetalle_.OptionsFilter.AllowFilterEditor = False
        gdv_documentodetalle_.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never

        gdv_documentodetalle_.EndUpdate()
    End Sub

    Private Function GetLayoutData(ByRef prm_GridView As DevExpress.XtraGrid.Views.Grid.GridView) As Byte()
        Dim stream As New System.IO.MemoryStream()
        prm_GridView.SaveLayoutToStream(stream)
        Return stream.GetBuffer()
    End Function

    Private Sub SetLayoutData(ByRef prm_GridView As DevExpress.XtraGrid.Views.Grid.GridView, ByVal data As Byte())
        If data Is Nothing OrElse data.Length = 0 Then
            Return
        End If
        Dim stream As New System.IO.MemoryStream(data)
        Try
            prm_GridView.RestoreLayoutFromStream(stream)
        Catch ex As Exception
            Throw New Exception("Wrong data format", ex)
        End Try
    End Sub

    Public Overrides Sub bbi_imprimir_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
       Dim rpt As New xtr_REPORTEpedido
        Dim dttsource As New dts_documento

        For Each row As DataRow In dtt_documentodetalle_.Rows
            If row("Kilos") <> 0 Then
                Dim r As DataRow = dttsource.Tables(0).NewRow
                r("idarticulo") = row("idarticulo")
                r("Nombre") = row("Nombre")
                r("Rubro") = row("Rubro")
                r("Cantidad") = row("Cantidad")
                r("Valor") = row("Valor")
                r("Cantidad") = row("Kilos")
                r("subCantidad") = row("Cantidad")
                r("Total") = row("Total")
                dttsource.Tables(0).Rows.Add(r)
            End If
        Next
        rpt.DataSource = dttsource

        rpt.lbl_numero.Text = "Compra Nro.: " & txt_numero.Text
        rpt.lbl_cliente.Text = "Cliente: " & cbo_proveedor.Text
        rpt.lbl_fecha.Text = "Fecha: " & dtp_Fecha.Text
        rpt.lbl_direccion.Text = "Dirección: " & txt_direccion.Text
        rpt.lbl_localidad.Text = "Localidad: " & txt_localidad.Text
        rpt.lbl_telefono1.Text = "Teléfono1: " & txt_telefono1.Text
        rpt.lbl_telefono2.Text = "Teléfono2: " & txt_telefono2.Text
        rpt.lbl_total.Text = txt_totaltotal.Text

        rpt.ShowPreview()
    End Sub

    Private Sub btn_filtrar_Click(sender As System.Object, e As System.EventArgs) Handles btn_filtrar.Click
        If btn_filtrar.Text = "Mostrar + Artículos" Then
            gdv_documentodetalle_.Columns("Kilos").ClearFilter()
            btn_filtrar.Text = "Ocultar Artículos con Kilos en cero"
        Else
            gdv_documentodetalle_.Columns("Kilos").FilterInfo = New DevExpress.XtraGrid.Columns.ColumnFilterInfo("[Kilos] <> 0")
            btn_filtrar.Text = "Mostrar + Artículos"
        End If
    End Sub

    Private Sub btn_buscarproveedor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_buscarProveedor.Click
        Dim buscar As xtf_buscardor = Nothing
        Dim Objeto_ As New cls_proveedor_
        Objeto_.CargarTodos(True)
        buscar = New xtf_buscardor("Proveedores", Objeto_, {"razonsocial|Razon Social", "TerceroDomicilio|Domicilio", "TerceroLocalidad|Localidad", "TerceroIva|Condicion de IVA"}, 0, "Razon Social")
        If buscar.ShowDialog() = Windows.Forms.DialogResult.OK Then
            Dim proveedor As cls_proveedor_ = buscar.obj_resultado
            cbo_proveedor.EditValue = buscar.obj_resultado.idproveedor
        End If
    End Sub

    Private Sub txt_condicioniva_EditValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_condicioniva.EditValueChanged

    End Sub
End Class